package com.hoas.api.core.intf;

import  com.hoas.api.core.entity.ApiResult;
import  com.hoas.api.core.exception.BusinessException;

/**
 * API服务提供接口
 * @author ZhangQingmu
 * @date   2016年10月23日
 *
 */
public interface ApiService {
	
	/**
	 * 服务操作接口
	 * @author ZhangQingmu
	 * @date   2016年10月23日
	 * @param businessId
	 * @param accessToken
	 * @param paramStr
	 * @return
	 * @throws BusinessException
	 */
	ApiResult callApi(String businessId, String accessToken, String paramStr) throws BusinessException;
	
	
	/**
	 * 获取服务操作权限令牌
	 * @author ZhangQingmu
	 * @date   2016年10月23日
	 * @param username 登录用户名
	 * @param password 登录密码
	 * @return
	 * @throws BusinessException
	 */
	ApiResult getAccessToken(String username, String password) throws BusinessException;

	/**
	 * 刷新服务操作权限令牌
	 * @author ZhangQingmu
	 * @date   2016年10月23日
	 * @param refreshToken 
	 * 				获取用户操作权限令牌时返回的refreshToken,可通过该令牌直接刷新用户操作权限令牌，无需再次验证用户登录
	 * @return
	 * @throws BusinessException
	 */
	ApiResult refreshAccessToken(String refreshToken) throws BusinessException;

	
}
